package com.etone.smartAudit.domain.work;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author 张任豪
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value="工单")
@TableName(value = "f_work_order")
public class WorkOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value="主键id")
    @TableId(type = IdType.AUTO, value = "intId")
    private Integer intId;

    @ApiModelProperty(value="整改编号")
    @TableField("vcRectifyCode")
    private String rectifyCode;

    @ApiModelProperty(value="年份")
    @TableField("vcYear")
    private String year;

    @ApiModelProperty(value="项目ID")
    @TableField("intItemId")
    private Integer itemId;

    @ApiModelProperty(value="项目名称")
    @TableField("vcItemName")
    private String itemName;

    @ApiModelProperty(value="项目类型")
    @TableField("intItemType")
    private Integer itemType;

    @ApiModelProperty(value="项目类型名称")
    @TableField("vcItemTypeName")
    private String itemTypeName;

    @ApiModelProperty(value="工单接收人id")
    @TableField("intWordOrderId")
    private Integer wordOrderId;

    @ApiModelProperty(value="工单接收人账号")
    @TableField(exist = false)
    private String wordOrderAccount;

    @ApiModelProperty(value="工单接收人")
    @TableField("vcWordOrderName")
    private String wordOrderName;

    @ApiModelProperty(value="工单接收人电话")
    @TableField(exist = false)
    private String wordOrderTel;

    @ApiModelProperty(value="审计组联系人账号")
    @TableField("vcAuditGroupAccount")
    private String auditGroupAccount;

    @ApiModelProperty(value="审计组联系人")
    @TableField("vcAuditGroup")
    private String auditGroup;

    @ApiModelProperty(value="审计组联系人")
    @TableField(exist = false)
    private String auditGroupTel;

    @ApiModelProperty(value="审计单位")
    @TableField("vcAuditUnit")
    private String auditUnit;

    @ApiModelProperty(value="审计报告名称")
    @TableField("vcAuditReportName")
    private String auditReportName;

    @ApiModelProperty(value="审计报告文号")
    @TableField("vcAuditReportNum")
    private String auditReportNum;

    @ApiModelProperty(value="审计文件类型")
    @TableField("vcAuditFileType")
    private String auditFileType;

    @ApiModelProperty(value="审计文件名称")
    @TableField("vcAuditFileName")
    private String auditFileName;

    @ApiModelProperty(value="审计文件展示名称")
    @TableField("vcAuditFileOriginName")
    private String auditFileOriginName;

    @ApiModelProperty(value="审计文件路劲")
    @TableField("vcAuditFileUrl")
    private String auditFileUrl;

    @ApiModelProperty(value="账外账")
    @TableField("douOutBill")
    private Double outBill;

    @ApiModelProperty(value="小金库")
    @TableField("douCoffers")
    private Double coffers;

    @ApiModelProperty(value="损失金额")
    @TableField("douLossAmount")
    private Double lossAmount;

    @ApiModelProperty(value="不规范金额")
    @TableField("douIrregularAmount")
    private Double irregularAmount;

    @ApiModelProperty(value="会计信息处理不当金额")
    @TableField("douMishandleAmount")
    private Double mishandleAmount;

    @ApiModelProperty(value="可能造成的损失风险金额")
    @TableField("douMayLossAmount")
    private Double mayLossAmount;

    @ApiModelProperty(value="审计风险金额")
    @TableField("douAuditRiskAmount")
    private Double auditRiskAmount;

    @ApiModelProperty(value="问题概要")
    @TableField("vcProblemSummary")
    private String problemSummary;

    @ApiModelProperty(value="问题详细描述")
    @TableField("vcProblemInfo")
    private String problemInfo;

    @ApiModelProperty(value="整改建议")
    @TableField("vcRectifyTips")
    private String rectifyTips;

    @ApiModelProperty(value="整改开始时间")
    @TableField("dtRectifyStartDate")
    private Date rectifyStartDate;

    @ApiModelProperty(value="整改结束时间")
    @TableField("dtRectifyEndDate")
    private Date rectifyEndDate;

    @ApiModelProperty(value="提醒周期")
    @TableField("intTipsPeriods")
    private Integer tipsPeriods;

    @ApiModelProperty(value="提醒频率")
    @TableField("intTipsFrequent")
    private Integer tipsFrequent;

    @ApiModelProperty(value="备注")
    @TableField("vcRemark")
    private String remark;

    @ApiModelProperty(value="工单状态（0待派发,1待审核,2待反馈,3待验收,4办结,5待整改专项评估）")
    @TableField("intStatus")
    private Integer status;

    @ApiModelProperty(value="提单流程状态（0创建工单,1审计组联系人审核,2室经理审核,3结束）")
    @TableField("intStepStatus")
    private Integer stepStatus;

    @ApiModelProperty(value="是否发生转派")
    @TableField("intIsTranSpend")
    private Integer isTranSpend;

    @ApiModelProperty(value="创建用户")
    @TableField("intCreateAdmin")
    private Integer createAdmin;

    @ApiModelProperty(value="创建时间")
    @TableField("dtCreateDate")
    private Date createDate;

    @ApiModelProperty(value="更新用户")
    @TableField("intUpdateAdmin")
    private Integer updateAdmin;

    @ApiModelProperty(value="更新时间")
    @TableField("dtUpdateDate")
    private Date updateDate;

    @ApiModelProperty(value="审核人ID")
    @TableField("intAuditManId")
    private Integer auditManId;


    @ApiModelProperty(value="审核人名称")
    @TableField("vcAuditMan")
    private String auditMan;

    @ApiModelProperty(value="工单所在部门OUID")
    @TableField("vcWorkOrderDeptID")
    private String workOrderDeptID;

    @ApiModelProperty(value="驳回原因")
    @TableField("vcRefusalMsg")
    private String refusalMsg;

    @ApiModelProperty(value="驳回驳回时间")
    @TableField("dtRefusalMsgTime")
    private Date refusalMsgTime;

    @ApiModelProperty(value="驳回人")
    @TableField("vcRefusalName")
    private String refusalName;


    @ApiModelProperty(value="审核阶段(1提单阶段,2反馈阶段,3验收阶段)")
    @TableField("intAuditStage")
    private Integer auditStage;

    @ApiModelProperty(value="领导审核时间")
    @TableField("dtLeadAuditTime")
    private Date leadAuditTime;

    @ApiModelProperty(value="工单结果状态")
    @TableField(exist = false)
    private String orderState;

}